Main/CS349W Project3
= Project 3 - Implement a New Reusable Web Interaction = In the final project for CS349W you will design and implement a new Web interaction. There are two goals for this project: * Create a new style of interaction, one you haven't seen before. Your interaction does not need to be a complete application; it can be a small interaction on the same scale that we saw in the first project. The goal is to experiment with a new way for humans to interact with Web applications. * Figure out how your interaction could be implemented as a reusable component. One way to do this is by implementing your interaction as a reusable component (perhaps for some existing framework). If that isn't possible within the time constraints of the project, then describe what it would take to make your interaction a reusable component (e.g., explain how it could be implemented within an existing framework in a way that would make it easy to reuse, or hypothesize a new framework that would make your interaction reusable and describe how your interaction would fit in that framework). You can implement your interaction however you wish, as long as it is accessible using the Firefox Web browser. You can use existing Web frameworks and/or Javascript libraries, or you can build your interaction from scratch. The choice is up to you, but you should be prepared to explain in your report and presentation why you chose your particular approach. Project Deliverables At the end of this project you'll make a short presentation to the class about the package that you have analyzed, and also produce a short written report attached to this Wiki just like the previous projects. Your presentation and write-up should include the following information: * How does your interaction work from the user's standpoint? What makes it useful? * How is your interaction implemented? For example, you might describe the split of functionality between server and browser, any framework or libraries you used, as well as any interesting coding techniques or DOM facilities that you used. There's no need to show detailed code unless there is something conceptually interesting about the code details. * How is your interaction encapsulated as a reusable component, or how could it be encapsulated? Are there any particular framework facilities that would be needed to make your interaction easy to reuse? If your interaction is hard to encapsulate, explain what it is about your interaction that makes it hard to encapsulate. * If your interaction is implemented entirely on the browser side, explain how it will integrate with the server-side part of the Web application. * Summarize what you think are the strengths and weaknesses of your interaction and its implementation. "Fascinating failures" are completely acceptable, as long as you are able to describe clearly what makes your interaction impractical and what you have learned from building it. Class Presentations For this project you should plan on a 5-10-minute presentation in class. This is enough time for about 3-5 PowerPoint slides. Be sure to demo your interaction! Schedule Here is the tentative schedule for the project: Mon. Nov. 10, 5 P.M. - Team and topic selected Fri. Dec. 5, 10-11 A.M. - First in-class presentations Mon. Dec. 8, 10-12 A.M. - Remaining in-class presentations (Bldg 200 Room 303) Mon. Dec. 8, 10 P.M. - Deadline for reports on Wiki Teams and Topics Once you have chosen a partner for this project please enter your names in the list below, along with a 5-10-word description of your project (not more than one singleton, please): * Jing Chen (Keyboard Navigation) * Benjamin Bercovitz & Seng Keat Teh (Meta-Feedback) * Harry Robertson & Indrajit Khare (Platypus Forms) * Okai Addy & Liz Li (Interactive Pie Chart) * Johnny Zhou & Juho Kim (Highly Interactive Treeview) * David Underhill & James Chen (JToolbar) * Zheren Zhang, Pratyus Patnaik, Nopparut Abhinoraseth (Interactive Commenting Interface) * Tayo Oguntebi & Daniel Sanchez (jGestures) * Naren Raghavan & Nipun Bhatia (Customized content aggregation) * Brian Eggleston & Bear Travis (SimpleWindow) * Matt Martin & Michael Fischer (for the Internet) * James Mao & Julien Wetterwald (Reusable filtering plug-in in Rails) * Eric Choi & Tejaswi Tenneti (Collaborative form entry) * Garrett Eastham (WINK - In-Page Wiki Navigation) Presentation Order Project presentations will be in the following order, from top to bottom. Friday, December 5, 10:00-10:50 (Building 200, Room 305) * Jing Chen * Zhou/Kim * Martin/Fischer * Oguntebi/Sanchez Monday, December 8, 10:00-12:00 (Building 200, Room 303) * Bercovitz/Teh * Mao/Wetterwald * Eastham * Choi/Tenneti * Underhill/Chen * Eggleston/Travis * Raghavan/Bhatia * Addy/Li * Robertson/Khare * Zhang/Patnaik/Abhinoraseth